package jdk9;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * JDK 9 新特性：集合工厂方法
 * <p>
 * 增加了 List.of()、Set.of()、Map.of() 和 Map.ofEntries() 等工厂方法来创建不可变集合
 * 有点参考 Guava 的味道
 * 我去看来 Java of() 方法的 api 发现有很多重载的 of() 方法，of(E e1)，of(E e1, E e2)...
 */
public class CollectionFactoryMethodDemo {
    public static void main(String[] args) {
        List<Integer> list = List.of(1, 2, 3);
        Set<String> set = Set.of("a", "b", "c");
        Map<String, Object> map = Map.of("name", "李龙", "age", 11);

        // 使用 of() 创建的集合为不可变集合，不能进行添加、删除、替换、排序等操作
        // 不然会报 java.lang.UnsupportedOperationException 异常。
        list.add(4);
        set.add("d");
        map.put("sex", "男");
    }
}
